1. Field of the Invention
This invention relates to the field of data processing and, more particularly, to synchronization techniques for audio/video data streams from independent audio and video devices by application programs.
2. Description of Related Art
A multimedia system is designed to present various multimedia materials in various combinations of text, graphics, video, image, animation, sound, etc. Such a system is a combination of hardware and software. The hardware includes a personal computer or a network of personal computers to which various audio/video devices can be attached. The hardware runs under the control of an operating system and audio/video application programs.
Multimedia (audio/video) applications impose heavy demands on an operating system to move large amounts of data from device to device, from system memory to a device, or vice-versa, in a continuous, real-time manner. Personal computing systems processing audio/video applications must support a flexible, yet consistent, means for transporting these large data objects, and control this activity accurately in real time.
The ability to synchronize events is critical to successful multimedia applications execution. For example, the application author may decide to display a certain bitmap (e.g., an image of fireworks bursting) at precisely the same time as an audio waveform is played (e.g., a specific cymbals crash during the "Star Spangled Banner").
There are many video devices and audio devices available for attachment to personal computing systems, but they operate independently of each other. Many times there is a need to use one hardware adaptor type for motion video, and a second hardware adaptor type for audio, each with no prior knowledge of the other. Depending on the audio hardware design, the hardware provides substantially less interrupts, anywhere from 1/10 of a second to several seconds between each interrupt. Some audio hardware designs do not provide an interrupt at set time intervals at all; instead, they provide an interrupt when a predetermined threshold is reached. In the above situations, the adapters are not designed for synchronization with each other. Further, developers of application programs desire the flexibility of adding audio and video hardware of any type, rather than just the hardware designed for use with a particular multimedia operating system.